const express = require('express');
const path = require('path');
// 引入第三方包，解决跨域问题
const cors = require('cors');
// 引入bodyParser，用来机械post请求中的数据
const bodyParser = require('body-parser');
const app = express();
// 通过使用中间件的方式，解决跨域问题
// app.use(cors());
app.use('/static', express.static(path.join(__dirname, 'public')));
const port = 3000;
// 用户数据
let userInfo = [
  { username: '马云', gender: '男', phone: '186333', pwd: '000' },    
  { username: '赵云', gender: '男', phone: '189333', pwd: '111' },
  { username: '马超', gender: '男', phone: '135666', pwd: '111' }
];

// 通过app.use()语法引入中间件来获取post的数据
// bodyParser解析的数据类型是：'Content-Type: application/x-www-form-urlencoded'（可以在浏览器中找到）
// extended属性值为false时，使用系统模块 处理；为true时，使用第三方模块处理
app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.json());

app.get('/', (req, res) => res.send('Hello World!'));

// 获取POST请求中的数据。用到了bodyParser
app.post('/register', (req, res) => {
  console.log(req.body);
  // 获取用户数据
  let user = {
    username: req.body.username,
    gender: req.body.gender,
    phone: req.body.phone,
    pwd: req.body.pwd,
  }
  // 新增用户
  userInfo.push(user);
  console.log(userInfo)
  res.send('注册成功');
})

// 获取GET请求中的数据。express做了封装，比node简单
// 将cors()放在要开放跨域的接口中，使得只有这个接口跨域，其他接口不受影响
app.get('/user/info', cors(), (req, res) => {
  // get请求中的参数在url上，直接通过req.query来获取即可
  console.log(req.query.username);
  let phone = '';
  userInfo.forEach(item => {
    if(item.username == req.query.username){
      phone = item.phone;
      console.log(phone)
    }
  })
  res.send(JSON.stringify({phone: phone}))
})

app.listen(port, () => console.log(`Example app listening on port ${port}!`));